import json
import pandas
from typing import List, Tuple, Dict
import requests
from pathlib import Path
import os
import yaml

current_dir: Any
config_file_path: Any
config: Any
gbim_domain: Any

class DataFetch:
    def __init__(self, gbim_http: str = None):
        ...
    def get_projects_info(self) -> List:
        """
        get the all projects infomation from gbim database by http api
        :return: the dict of projects information
        """
        ...
    def get_template_info(self, tid: int) -> dict:
        """
        get the all tables infomation in template by template id
        :param tid: template's id in gbim
        :return: the dict of template's tables information
        """
        ...
    def get_Proj_info(self, pid: int) -> List:
        """
        get the all tables infomation in template by template id
        :param pid: project's id in gbim
        :return: the dict of template's tables information
        """
        ...
    def get_project_tables_info(self, pid: int) -> List:
        """
        get the all tables infomation in project by project id
        :param pid: project's id in gbim
        :return: the dict of project's tables information
        """
        ...
    def get_fields_data_by_params(self, projectNo: str = None, table_title: str = None, field_title_list: List[str] = None, table_name: str = None, field_name_list: List[str] = None, pid: int = None, dataType: str = None) -> pd.DataFrame:
        """
        get the field data from gbim database by project's number、table's title and field's titles
        :param parma:
        :return: the pd.dataframe object, see below:
                  kl_layer_number kl_soilname
        0           1-0-0         杂填土
        1           1-0-0         杂填土
        2           1-0-0         杂填土
        """
        ...
    def get_all_fields_data_by_params(self, projectNo: str = None, table_title: str = None, table_name: str = None, pid: int = None, dataType: str = None) -> pd.DataFrame:
        """
        get the all field data from gbim database by project’s title and table's title
        :param parma:
        :return: the pd.dataframe object, see below:
                  kl_layer_number kl_soilname ...
        0           1-0-0         杂填土
        1           1-0-0         杂填土
        2           1-0-0         杂填土
        :param project_title:
        :param table_title:
        :return:
        """
        ...
